package org.jeecg.cn.edu.scau.vm.node.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

/**
 * 节点实体类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Builder
@TableName("vm_node")
public class VmNode {
    /**
     * 节点表记录ID
     */
    @TableId(type = IdType.AUTO)
    private String id;

    /**
     * 节点Ip地址,点分十进制法
     */
    @TableField("node_ip_address")
    private String nodeIpAddress;

    /**
     * 节点在系统中的唯一标识
     */
    @TableField("node_uuid")
    private String nodeId;

    /**
     * 节点配套的ftp服务器相关信息存储
     */
    @TableField("node_ftp_server_id")
    private String nodeFtpServerId;

    /**
     * 节点所含有的gpu数量
     */
    @TableField("gpu_num")
    private Integer gpuNumber;

    /**
     * 节点当前状态,0表示未发起初始化,1表示正在初始化,2表示初始化失败
     */
    @TableField("status")
    private Integer status;

    /**
     * 标识当前节点归属部门/组织
     */
    @TableField("sys_org_code")
    private String sysOrgCode;

    /**
     * 更新时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time")
    private LocalDateTime createTime;
    /**
     * SSH连接用户名
     */
    @TableField("username")
    private String username;

    /**
     * SSH连接密码
     */
    @TableField("password")
    private String password;

    /**
     * 更新者
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 创建者
     */
    @TableField("create_by")
    private String createBy;
    /**
     * 节点名称
     */
    @TableField("name")
    private String name;
    /**
     * 部门名称
     */
    @TableField("sys_org_name")
    private String sysOrgName;
}
